package com.tjetc.dao;

import com.tjetc.pojo.Bank;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * @author gaoyongxiang
 * @version v1.0
 * @date 2025/8/18
 */
@SuppressWarnings("all")
public interface BankDao {

    // 基本查询
    // 通过注解的方式 写sql语句 代替xml文件
    // 这种写法 很混乱 接口和sql 混杂在一起
//    @Select("select * from bank where id = #{id}")
    Bank selectBank(int id);


    // 返回类型使用map  参数类型也可以用map
    // 这个map不是多个对象 指的是一个对象 如果查多个 List<Map<String, Object>> map =
    Map<String, Object> selectBank1(int id);


    /*
        如果有多个参数的时候
        我们需要通过arg 或者 param 参数来指明，但是表意不清楚
        我们使用@Param注解 由于JVM在编译阶段会丢掉数据类型所以 我们自己写的name和id名就丢失了
        为了统一 我们可以都使用Param
     */
    Bank selectBank2(@Param("id") int id, @Param("name") String name);


    Bank selectBank3(Bank bank);

    // 如果对象使用@Param 注解 需要通过对象.的方式去获取
    Bank selectBank4(@Param("bank") Bank bank);


    List<Bank> selectBank5(@Param("ids") List<Integer> ids);


    // 我们除了id 查询 id删除 其余传递的几乎都是对象
    int updateBank(Bank bank);


    int insertBank(String name);


    int insertBank1(Bank bank);


    int insertBank2(Bank bank);


}